/*
 * PrintError.h
 *
 *  Created on: Jan 30, 2013
 *      Author: bird
 */

#ifndef PRINTERROR_H_
#define PRINTERROR_H_
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
/*
 * 1 异常分为4级
 *  1级 非常严重 直接退出程序 这种错误不分 debug 和 release 版本
 *  2级严重 会影响程序的正常工作
 *  3级 比较严重 但是属于正常现象 如资源申请 1 2 3级错误 都必须打印出错误原因
 *  4级 一般 程序中由于某些条件没有达到，属于正常情况。 在release 版本中会忽略掉
 *  程序中通过输出时候添加的 level 来区分
 */
/*
 * 打印错误
 */
#define PrintError(str) \
		{ \
		  printf("%s,%d\n",__func__,__LINE__);\
		  PrintError::printL1(#str);\
		}
#define PrintException(str) \
		{ \
		  printf("%s,%d\n",__func__,__LINE__);\
		  PrintError::printL3(str);\
		}
/*
 * 跟踪程序运行函数
 */
#define PrintTrackFun()   printf("%s \n",__func__);
extern int errno;
class PrintError {
public:
	static void printL1(const char*);
	static void printL2(const char*);
	static void printL3(const char*);
	static void printL4(const char*);
private:
	static bool DebugVersion;
};

 /* namespace TEST */
#endif /* PRINTERROR_H_ */
